﻿Imports System.Web.UI
Imports System.Text

Public Class Funciones

  Public Shared Function NombreCompletoEnsamblado(ByVal pTipo As Type, ByVal pNombreCorto As String) As String
    Dim NombreLargo As String = String.Empty
    Dim Tipo As Type = pTipo
    While NombreLargo = String.Empty And Not Tipo Is Nothing
      If pNombreCorto = Tipo.FullName Then
        NombreLargo = Tipo.Assembly.FullName
      Else
        Tipo = Tipo.BaseType
      End If
    End While
    Return NombreLargo
  End Function

  Public Shared Function EncontrarControl(ByVal pIdControl As String, ByVal pContenedeor As Object) As Control
    Dim ControlValor = Nothing
    Dim Padre As Object = pContenedeor
    While Not Padre Is Nothing And ControlValor Is Nothing
      Padre = Padre.Parent
      If Padre Is Nothing Then
        Throw New Exception("Id '" + pIdControl + "' no se ha encontrado en la página")
      End If
      ControlValor = Padre.FindControl(pIdControl)
    End While
    Return ControlValor
  End Function

  Enum Acciones
    Nada
    GrillaAvanzarUno
    GrillaRetrocederUno
    GrillaAvanzarPagina
    GrillaRetrocederPagina
    GrillaRefrescar
    GrillaReLeer
    GrillaElegir
    FormularioMostrarAlta
    FormularioMostrarBaja
    FormularioMostrarModificacion
    FormularioMostrarConsulta
    FormularioAceptar
    FormularioCancelar
    FuncionPersonalizada
  End Enum

  Public Shared Function SrcipAccion(ByVal pAccion As Acciones, ByVal pIdTargetGrilla As String, ByVal pIdTargetFormulario As String) As String
    Dim Reto As String = String.Empty
    Select Case pAccion
      Case Acciones.GrillaAvanzarUno
        Reto = "$find('" + pIdTargetGrilla + "$Grilla').Avanzar(1);return false"
      Case Acciones.GrillaRetrocederUno
        Reto = "$find('" + pIdTargetGrilla + "$Grilla').Retroceder(1);return false"
      Case Acciones.GrillaAvanzarPagina
        Reto = "$find('" + pIdTargetGrilla + "$Grilla').Avanzar($find('" + pIdTargetGrilla + "$Grilla').Filas);return false"
      Case Acciones.GrillaRetrocederPagina
        Reto = "$find('" + pIdTargetGrilla + "$Grilla').Retroceder($find('" + pIdTargetGrilla + "$Grilla').Filas);return false"
      Case Acciones.GrillaRefrescar
        Reto = "$find('" + pIdTargetGrilla + "$Grilla').Refrescar();return false"
      Case Acciones.GrillaReLeer
        Reto = "$find('" + pIdTargetGrilla + "$Grilla').ReLeer();return false"
      Case Acciones.GrillaElegir
        Reto = "$find('" + pIdTargetGrilla + "$Grilla').Elegir();return false"
      Case Acciones.FormularioMostrarAlta
        Reto = "$find('" + pIdTargetFormulario + "$Formulario').Mostrar('Al');return false"
      Case Acciones.FormularioMostrarBaja
        Reto = "$find('" + pIdTargetFormulario + "$Formulario').Mostrar('Ba');return false"
      Case Acciones.FormularioMostrarModificacion
        Reto = "$find('" + pIdTargetFormulario + "$Formulario').Mostrar('Mo');return false"
      Case Acciones.FormularioMostrarConsulta
        Reto = "$find('" + pIdTargetFormulario + "$Formulario').Mostrar('Co');return false"
      Case Acciones.FormularioAceptar
        Reto = "$find('" + pIdTargetFormulario + "$Formulario').Aceptar();return false"
      Case Acciones.FormularioCancelar
        Reto = "$find('" + pIdTargetFormulario + "$Formulario').Cancelar();return false"
    End Select
    Return Reto
  End Function

End Class


